From: Aaron M. Ucko Date: Fri, 11 May 2012 00:37:37 +0000 (+0000) Subject: debian/patches/fix_gcc47_errors: fix various GCC 4.7 compilation X-Git-Tag: archive/raspbian/2.16.0+ds-7+rpi1~1^2~294 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success/%22http:/www.example.com/cgi/success?a=commitdiff_plain;h=e21cdad39e6e018023fc035e965dffc2e32fe436;p=ncbi-blast%2B.git debian/patches/fix_gcc47_errors: fix various GCC 4.7 compilation errors and warnings. (Closes: #669679.) * Explicitly qualify more dependent names originating in base templates. * Directly #include headers as needed. * Use modern syntax for making protected base members public. * Add forward declarations as needed. --- diff --git a/debian/changelog b/debian/changelog index 773d8260..55d259a9 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,10 +2,18 @@ ncbi-blast+ (2.2.26-3) UNRELEASED; urgency=low * NOT YET RELEASED. - [Andreas Tille] + [ Aaron M. Ucko ] + * debian/patches/fix_gcc47_errors: fix various GCC 4.7 compilation + errors and warnings. (Closes: #669679.) + - Explicitly qualify more dependent names originating in base templates. + - Directly #include headers as needed. + - Use modern syntax for making protected base members public. + - Add forward declarations as needed. + + [ Andreas Tille ] * debian/control: Modernize Vcs-* fields. - -- Aaron M. Ucko Thu, 10 May 2012 18:27:00 -0400 + -- Aaron M. Ucko Thu, 10 May 2012 20:37:32 -0400 ncbi-blast+ (2.2.26-2) unstable; urgency=low diff --git a/debian/patches/fix_gcc47_errors b/debian/patches/fix_gcc47_errors new file mode 100644 index 00000000..ba6255e2 --- /dev/null +++ b/debian/patches/fix_gcc47_errors @@ -0,0 +1,320 @@ +Subject: fix various GCC 4.7 compilation errors and warnings + + * Explicitly qualify more dependent names originating in base templates. + * Directly #include headers as needed. + * Use modern syntax for making protected base members public. + * Add forward declarations as needed. + +Author: Aaron M. Ucko +Last-Update: 2012-04-13 +--- a/c++/include/connect/ncbi_conn_stream.hpp ++++ b/c++/include/connect/ncbi_conn_stream.hpp +@@ -259,7 +259,7 @@ + class CConn_IOStreamSetReadTimeout : protected CConn_IOStreamSetTimeout + { + public: +- CConn_IOStreamSetTimeout::GetTimeout; ++ using CConn_IOStreamSetTimeout::GetTimeout; + + protected: + CConn_IOStreamSetReadTimeout(const STimeout* timeout) +@@ -289,7 +289,7 @@ + class CConn_IOStreamSetWriteTimeout : protected CConn_IOStreamSetTimeout + { + public: +- CConn_IOStreamSetTimeout::GetTimeout; ++ using CConn_IOStreamSetTimeout::GetTimeout; + + protected: + CConn_IOStreamSetWriteTimeout(const STimeout* timeout) +--- a/c++/include/corelib/ncbiexpt.hpp ++++ b/c++/include/corelib/ncbiexpt.hpp +@@ -852,7 +852,7 @@ + exception_class(const exception_class& other) \ + : base_class(other) \ + { \ +- x_Assign(other); \ ++ this->x_Assign(other); \ + } \ + public: \ + virtual ~exception_class(void) throw() {} \ +@@ -1172,7 +1172,7 @@ + : TBase( other) + { + m_Errno = other.m_Errno; +- x_Assign(other); ++ this->x_Assign(other); + } + + /// Destructor. +--- a/c++/include/corelib/ncbimisc.hpp ++++ b/c++/include/corelib/ncbimisc.hpp +@@ -39,6 +39,7 @@ + #ifdef HAVE_SYS_TYPES_H + # include + #endif ++#include + #ifdef NCBI_COMPILER_ICC + // Preemptively pull in , which breaks if we've already + // repointed is* at NCBI_is*. +--- a/c++/include/corelib/ncbistl.hpp ++++ b/c++/include/corelib/ncbistl.hpp +@@ -37,6 +37,7 @@ + + #include + ++#include + + // Get rid of some warnings in MSVC++ + #if (_MSC_VER >= 1200) +--- a/c++/include/corelib/ncbistr.hpp ++++ b/c++/include/corelib/ncbistr.hpp +@@ -3039,7 +3039,7 @@ + : TBase(other) + { + m_Pos = other.m_Pos; +- x_Assign(other); ++ this->x_Assign(other); + } + + /// Destructor. +--- a/c++/include/serial/impl/stltypes.hpp ++++ b/c++/include/serial/impl/stltypes.hpp +@@ -412,6 +412,7 @@ + typedef StlIterator TStlIterator; + typedef TypeInfoIterator TTypeInfoIterator; + typedef typename TTypeInfoIterator::TObjectPtr TObjectPtr; ++ typedef CStlClassInfoFunctions CParent; + + static TStlIterator& It(TTypeInfoIterator& iter) + { +@@ -437,7 +438,8 @@ + } + static bool InitIterator(TTypeInfoIterator& iter) + { +- TStlIterator stl_iter = Get(iter.GetContainerPtr()).begin(); ++ TStlIterator stl_iter ++ = CParent::Get(iter.GetContainerPtr()).begin(); + if ( sizeof(TStlIterator) <= sizeof(iter.m_IteratorData) ) { + void* data = &iter.m_IteratorData; + new (data) TStlIterator(stl_iter); +@@ -445,7 +447,7 @@ + else { + iter.m_IteratorData = new TStlIterator(stl_iter); + } +- return stl_iter != Get(iter.GetContainerPtr()).end(); ++ return stl_iter != CParent::Get(iter.GetContainerPtr()).end(); + } + static void ReleaseIterator(TTypeInfoIterator& iter) + { +@@ -466,7 +468,7 @@ + + static bool NextElement(TTypeInfoIterator& iter) + { +- return ++It(iter) != Get(iter.GetContainerPtr()).end(); ++ return ++It(iter) != CParent::Get(iter.GetContainerPtr()).end(); + } + static TObjectPtr GetElementPtr(const TTypeInfoIterator& iter) + { +@@ -503,7 +505,7 @@ + + static bool EraseElement(TTypeInfoIterator& iter) + { +- TStlIterator& it = It(iter); ++ TStlIterator& it = CParent::It(iter); + Container* c = static_cast(iter.GetContainerPtr()); + it = c->erase(it); + return it != c->end(); +@@ -511,7 +513,7 @@ + static void EraseAllElements(TTypeInfoIterator& iter) + { + Container* c = static_cast(iter.GetContainerPtr()); +- c->erase(It(iter), c->end()); ++ c->erase(CParent::It(iter), c->end()); + } + + static void SetIteratorFunctions(CStlOneArgTemplate* info) +@@ -542,7 +544,7 @@ + } + static bool EraseElement(TTypeInfoIterator& iter) + { +- TStlIterator& it = It(iter); ++ TStlIterator& it = CParent::It(iter); + Container* c = static_cast(iter.GetContainerPtr()); + TStlIterator erase = it++; + c->erase(erase); +@@ -551,7 +553,7 @@ + static void EraseAllElements(TTypeInfoIterator& iter) + { + Container* c = static_cast(iter.GetContainerPtr()); +- c->erase(It(iter), c->end()); ++ c->erase(CParent::It(iter), c->end()); + } + + static void SetIteratorFunctions(CStlOneArgTemplate* info) +--- a/c++/include/serial/iterator.hpp ++++ b/c++/include/serial/iterator.hpp +@@ -520,13 +520,13 @@ + CTypeIteratorBase(TTypeInfo needType, const TBeginInfo& beginInfo) + : m_NeedType(needType) + { +- Init(beginInfo); ++ this->Init(beginInfo); + } + CTypeIteratorBase(TTypeInfo needType, const TBeginInfo& beginInfo, + const string& filter) + : m_NeedType(needType) + { +- Init(beginInfo, filter); ++ this->Init(beginInfo, filter); + } + + virtual bool CanSelect(const CConstObjectInfo& object) +--- a/c++/include/util/bitset/bmfunc.h ++++ b/c++/include/util/bitset/bmfunc.h +@@ -39,6 +39,13 @@ + namespace bm + { + ++bm::id_t bit_block_any_range(const bm::word_t* block, ++ bm::word_t left, ++ bm::word_t right); ++ ++bm::id_t bit_block_calc_count_range(const bm::word_t* block, ++ bm::word_t left, ++ bm::word_t right); + + /*! + @brief Structure with statistical information about bitset's memory +--- a/c++/include/util/bitset/bmserial.h ++++ b/c++/include/util/bitset/bmserial.h +@@ -1381,7 +1381,7 @@ + case set_block_arrgap: + case set_block_arrgap_egamma: + { +- unsigned arr_len = read_id_list(dec, btype, this->id_array_); ++ unsigned arr_len = this->read_id_list(dec, btype, this->id_array_); + gap_len = gap_set_array(gap_temp_block_, this->id_array_, arr_len); + break; + } +@@ -1390,7 +1390,7 @@ + (sizeof(gap_word_t) == 2 ? dec.get_16() : dec.get_32()); + case set_block_arrgap_egamma_inv: + case set_block_arrgap_inv: +- gap_len = read_gap_block(dec, btype, gap_temp_block_, gap_head); ++ gap_len = this->read_gap_block(dec, btype, gap_temp_block_, gap_head); + break; + default: + BM_ASSERT(0); +--- a/c++/include/util/linkedset.hpp ++++ b/c++/include/util/linkedset.hpp +@@ -268,10 +268,10 @@ + pair ins = m_Container.insert(value); + if ( ins.second ) { + if ( ins.first == begin() ) +- insertToStart(*ins.first); ++ this->insertToStart(*ins.first); + else { + iterator prev = ins.first; +- insertAfter(*--prev, *ins.first); ++ this->insertAfter(*--prev, *ins.first); + } + } + return ins; +@@ -280,10 +280,10 @@ + void erase(iterator iter) + { + if ( iter == begin() ) +- removeFromStart(*iter); ++ this->removeFromStart(*iter); + else { + iterator prev = iter; +- removeAfter(*--prev, *iter); ++ this->removeAfter(*--prev, *iter); + } + m_Container.erase(iter); + } +@@ -422,10 +422,10 @@ + { + iterator iter = m_Container.insert(value); + if ( iter == begin() ) +- insertToStart(get(iter)); ++ this->insertToStart(get(iter)); + else { + iterator prev = iter; +- insertAfter(get(--prev), get(iter)); ++ this->insertAfter(get(--prev), get(iter)); + } + return iter; + } +@@ -433,10 +433,10 @@ + void erase(iterator iter) + { + if ( iter == begin() ) +- removeFromStart(get(iter)); ++ this->removeFromStart(get(iter)); + else { + iterator prev = iter; +- removeAfter(get(--prev), get(iter)); ++ this->removeAfter(get(--prev), get(iter)); + } + m_Container.erase(iter); + } +--- a/c++/include/util/rangemap.hpp ++++ b/c++/include/util/rangemap.hpp +@@ -578,7 +578,7 @@ + // get level + + // insert element +- TSelectMapI selectIter = insertLevel(selectKey); ++ TSelectMapI selectIter = this->insertLevel(selectKey); + pair levelIns = selectIter->second.insert(value); + + pair ret; +@@ -640,7 +640,7 @@ + // insert element + iterator ret; + ret.m_Range = range_type::GetWhole(); +- ret.m_SelectIter = insertLevel(selectKey); ++ ret.m_SelectIter = this->insertLevel(selectKey); + ret.m_SelectIterEnd = this->m_SelectMap.end(); + ret.m_LevelIter = ret.m_SelectIter->second.insert(value); + return ret; +--- a/c++/src/serial/stdtypes.cpp ++++ b/c++/src/serial/stdtypes.cpp +@@ -720,7 +720,7 @@ + if ( IsSigned() ) { + // signed -> unsigned + // check for negative value +- if ( IsNegative(value) ) ++ if ( CParent::IsNegative(value) ) + ThrowIntegerOverflow(); + } + if ( sizeof(value) > sizeof(result) ) { +@@ -751,7 +751,7 @@ + // unsigned -> signed + if ( sizeof(value) == sizeof(result) ) { + // same size - check for sign change only +- if ( IsNegative(result) ) ++ if ( CParent::IsNegative(result) ) + ThrowIntegerOverflow(); + } + } +@@ -786,7 +786,7 @@ + if ( IsSigned() ) { + // signed -> unsigned + // check for negative value +- if ( IsNegative(value) ) ++ if ( CParent::IsNegative(value) ) + ThrowIntegerOverflow(); + } + if ( sizeof(value) > sizeof(result) ) { +@@ -817,7 +817,7 @@ + // unsigned -> signed + if ( sizeof(value) == sizeof(result) ) { + // same size - check for sign change only +- if ( IsNegative(result) ) ++ if ( CParent::IsNegative(result) ) + ThrowIntegerOverflow(); + } + } diff --git a/debian/patches/series b/debian/patches/series index 988f0acb..5c737d2b 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -3,3 +3,4 @@ legacy_rename_rpsblast fix_lib_deps no_multiarch_rpath wrong_path_to_touch.patch +fix_gcc47_errors